
#ifndef WINDOW_VERIFY_H
#define WINDOW_VERIFY_H

#include "gkt_types.h"

#ifdef __cplusplus
extern "C" {
#endif

enum {
	WINDOW_VERIFY_TYPE_UNLOCK = 0,
	WINDOW_VERIFY_TYPE_LOGIN,
	WINDOW_VERIFY_TYPE_GET_ID,
	WINDOW_VERIFY_TYPE_MAX
};

enum {
	WINDOW_VERIFY_LOGIN_ACTION_SHOW_MAIN_MENU = 0,
	WINDOW_VERIFY_LOGIN_ACTION_USER_DEFINED,
	WINDOW_VERIFY_LOGIN_ACTION_MAX
};

typedef struct _window_verify_login_attr {
	uint32_t	type;		/* WINDOW_VERIFY_TYPE_LOGIN */
	uint32_t	action;
} window_verify_login_attr_s;

enum {
	WINDOW_VERIFY_UNLOCK_MODE_USER = 0,
	WINDOW_VERIFY_UNLOCK_MODE_KEY,
	WINDOW_VERIFY_UNLOCK_MODE_REMOTE,
	WINDOW_VERIFY_UNLOCK_MODE_MAX
};

typedef struct _window_verify_unlock_attr {
	uint32_t	type;		/* WINDOW_VERIFY_TYPE_UNLOCK */
	uint32_t	mode;
	uint32_t	user_type;	/* GKT_USER_TYPE_FINGERPRINT/XXX */
	uint32_t	extend_data;
} window_verify_unlock_attr_s;

typedef struct _window_verify_get_id_attr {
	uint32_t	type;
	uint32_t	user_auth;
	uint32_t	user_id; /* user id */
} window_verify_get_id_attr_s;

typedef union _window_verify_attr {
	uint32_t	type;
	window_verify_login_attr_s	login;
	window_verify_unlock_attr_s	unlock;
	window_verify_get_id_attr_s	get_id;
} window_verify_attr_u;

#ifdef __cplusplus
}
#endif

#endif	/* WINDOW_VERIFY_H */

